// 属性管理
var Attribute = Ext.data.Record.create([
	{name : 'tid',mapping : 'tid',type : 'int'}, 
	{name : 'value',mapping : 'value',type : 'string'},
	{name : 'types',mapping : 'types',type : 'int'}
	]);

var cm_attr = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '属性值',
	width : 85,
	dataIndex : 'value'
}, {
	header : '类别',
	width : 90,
	dataIndex : 'types',
	sortable : true,
	renderer : renderAttr,
	menuDisabled : true
}]);

cm_attr.defaultSortable = true;

var btn_add_attr = new Ext.Button({
	text : '添加属性',
	iconCls : 'icon-add',
	handler : function() {
		window_add_attr.show();
	}
});
var btn_edit_attr = new Ext.Button({
	text : '修改属性',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_attr.getSelectionModel().getSelected();
		if (record) {
			window_edit_attr.show();
		}else{
			Ext.Msg.alert('提示','请选择要修改的属性!');
		}
	}
});

var btn_del_attr = new Ext.Button({
	text : '删除属性',
	iconCls : 'icon-del',
	handler : function() {
		var record = grid_attr.getSelectionModel().getSelected();
		if (record) {
			Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
				if (btn == 'yes') {
					Ext.Ajax.request({
						url : '/attribute/deleteAttribute.action',
						params : {tid : record.data.tid},
						success : function() {grid_attr.getStore().remove(record);},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '删除时发生错误,您可能不是管理员!',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			});
		}
	}
});

var ds_attr = new Ext.data.Store({
	url : '/attribute/findAllAttribute.action',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'tid',type : 'int'}, 
	{name : 'value',type : 'string'}, 
	{name : 'types',type : 'int'}
	])
});

var grid_attr = new Ext.grid.EditorGridPanel({
	title : '属性管理',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
	width:600,
	region : 'center',
	cm : cm_attr,
	ds : ds_attr,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	clicksToEdit : 1,
	tbar : [btn_add_attr, '-',btn_edit_attr,'-', btn_del_attr],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_attr,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录"
	})
});

var window_add_attr = new Ext.Window({
	title : '添加属性',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('添加属性');
			this.findById('attribute.value').ownerCt.form.reset();
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{
			fieldLabel : '属性内容',
			id : 'attribute.value',
			name : 'attribute.value',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, {xtype : 'combo',
			fieldLabel : '属性类别',
			mode : 'local',
			name : 'types',
			editable : false,
			store : new Ext.data.SimpleStore({
				data : [['区域', 0], ['银行',1],['银行卡类型',2],['担保方式',3]],
				fields : ['text', 'value']
			}),
			displayField : 'text',
			valueField : 'value',
			hiddenName:'attribute.types',
			mode : 'local',
			triggerAction : 'all',
			allowBlank:false,
			emptyText : '请选择属性类别'
		}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '添加',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('attribute.value');
					frm.submit({
						waitTitle : '请稍候',
						url : '/attribute/saveAttribute.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							ds_attr.load({params : {start : 0,limit : 20}});
							window_add_attr.hide();
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '重置',handler : function() {this.ownerCt.ownerCt.form.reset();}
		}, {text : '取消',handler : function() {
			this.ownerCt.ownerCt.ownerCt.hide();
			ds_attr.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var window_edit_attr = new Ext.Window({
	title : '修改属性',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('修改属性');
			this.findById('attributed.value').ownerCt.form.reset();
		},
		'show' : function(){
			var record = grid_attr.getSelectionModel().getSelected();
			this.findById('attributed.value').setValue(record.data.value);
			this.findById('typesd').setValue(record.data.types);
			this.findById('attributed.tid').setValue(record.data.tid);
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{xtype : 'hidden',id:'attributed.tid',name : 'attribute.tid'}, {
			fieldLabel : '属性内容',
			id : 'attributed.value',
			name : 'attribute.value',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, {xtype : 'combo',
			fieldLabel : '属性类别',
			mode : 'local',
			id : 'typesd',
			name : 'types',
			editable : false,
			store : new Ext.data.SimpleStore({
				data : [['区域', 0], ['银行',1],['银行卡类型',2],['担保方式',3]],
				fields : ['text', 'value']
			}),
			displayField : 'text',
			valueField : 'value',
			hiddenName:'attribute.types',
			mode : 'local',
			triggerAction : 'all',
			allowBlank:false,
			emptyText : '请选择属性类别'
		}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '保存',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('attributed.value');
					frm.submit({
						waitTitle : '请稍候',
						url : '/attribute/updateAttribute.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							ds_attr.load({params : {start : 0,limit : 20}});
							window_edit_attr.hide();
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '取消',handler : function() {
			this.ownerCt.ownerCt.ownerCt.hide();
			ds_attr.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});
var p_attr = {
	id : 'attr-panel',
	border : false,
	layout : 'border',
	items : [grid_attr]
};